Social Weight of Social Media Content

ABSTRACT

Systems and methods for social weighting of content items from a plurality of content sources, such as the Internet, are described. Disclosed implementations include, but are not limited to, receiving a search request from a user, retrieving content items related to the search request to obtain a number of results, weighting the results according to at least one social factor, and providing the weighted results in response to the request.

BACKGROUND

Search results typically rely upon rankings of items to determine themost relevant items to be presented to the user. These rankings may bebased upon criteria such as the number of times a particular item was“clicked on” or viewed by a user. Furthermore, search results arecommonly presented in chronological order and the assumed relevancy ofthe content to the search being performed. However, one reason thatproviding relevant search results in a chronological order for internetcontent is problematic is because the newest content is not always themost relevant content to a particular user.

SUMMARY

Systems, methods and computer-readable media are disclosed herein thatprovide one or more ways of weighting social media content. Social mediacontent is weighted by use of the following, either alone or incombination: content aging, content audience count, comments on content,links to the content, visitors to the content, contributors to thecontent, “likes” or other content ratings, and the like. It is notedthat such social media weighting is not limited to the items listedabove; rather, the items listed above may be combined with other contentweighting items or methods now known or unknown in the art.

This Summary is provided to introduce a selection of concepts in asimplified form that are further described below in the DetailedDescription. This Summary is not intended to identify key features oressential features of the claimed subject matter, nor is it intended tobe used to limit the scope of the claimed subject matter.

BRIEF DESCRIPTION OF THE DRAWINGS

While the specification concludes with claims particularly pointing outand distinctly claiming the subject matter, it is believed that theembodiments will be better understood from the following description inconjunction with the accompanying figures, in which:

FIG. 1 illustrates an example of a client-server environment that can beused to implement one or more embodiments;

FIG. 2 is a block diagram of an example of a system according to one ormore embodiments;

FIG. 3 depicts a flowchart of an example embodiment of determining thesocial weight of social media content; and

FIG. 4 depicts a flowchart of an example embodiment of responding to arequest for a content item.

DETAILED DESCRIPTION

FIG. 1 shows an example of a client-server environment 100, includingboth software and hardware, that is suitable for implementing one ormore of the embodiments described herein. The environment 100 includesat least one apparatus, such as at least one server computer 205 thatinterfaces with a plurality of client computers 105. Specifically, theserver computer 205 is a web server that responds to requests from theclient computer 105 while the client computer 105 is a web client thatmakes requests to the server computer 205. Each computer 105, 205represents practically any type of computer, any type of combination ofcomputers (e g., one or more networked computers in a cluster or otherdistributed computing system), or any type of programmable electronicdevice that is capable of functioning as a client and/or server.

Each computer 105, 205 includes at least one processor 110, 210, atleast one bus 115, 215, and at least one memory 120, 220. Each of theprocessor 110, 210 is hardware based and represents the centralprocessing unit (CPU) of the computer 105, 205. Furthermore, each of theprocessor 110, 210 may be a microprocessor that includes the majority orall of the functions of the CPU on a single integrated circuit or chip.Alternatively, each processor 110, 210 may represent a plurality ofprocessors that operate in parallel such that the plurality of theprocessors are within the computer 105, 205 or a portion of theplurality of the processors is located on another coupled computer.

Each bus 115, 215 represents at least one of several types of busstructures, including a processor bus or local bus, a memory bus, anaccelerated graphics port, and a peripheral bus, among others, to couplethe various components together in each of the computer 105, 205.

Each memory 120, 220 represents the random access memory (RAM) ofcomputer 105, 205 and typically stores executable code 125, 225. Theexecutable code 125, 225 represents at least one instruction that isexecuted by the processor 110, 210, as well as any associated data(e.g., temporary variables or other intermediate data during theexecution of the instructions), to implement the embodiments. The memory120 also includes the instructions and data utilized for client computer105 to function as a web client 130 (e g., a web browser). Likewise,memory 220 includes the data and instructions utilized for servercomputer 205 to function as a web server 230. Furthermore, each memory120, 220 includes an operating system 135, 235 that controls theoperation of computer 105, 205.

Each memory 120, 220 may also represent (a) any supplemental level ofmemory (e g., a cache memory, a non-volatile memory, a backup memory,programmable memory, flash memory, read-only memory, among others), (b)memory storage physically located elsewhere in computer 105, 205 such asin a cache memory in processor 110, 210, (c) any storage capacity suchas a virtual memory stored on a storage device 140, 240, and/or (d) onanother coupled computer. For instance, executable code 125, 225 mayreside in the storage device 140, 240 prior to being loaded into memory120, 220.

The storage device 140, 240 also includes at least one database 145, 245for storing data, for example, in tables, indexes, etc. Furthermore,data may be stored in storage device 140, 240 from the implementation ofthe embodiments. For example, database 245 in the server computer 205stores at least one content item 280, at least one adjusted socialweight 281, and at least one decayed social weight 282. A content itemor social media content includes, but is not limited to, articles,videos, presentations, files, documents, links, web pages, and othercontent available via the internet. Each storage device 140, 240 mayinclude a hard disk drive for reading from and writing to a hard disk, amagnetic disk drive for reading from and writing to a removable magneticdisk, and an optical disk drive for reading from or writing to aremovable optical disk such as a CD or other optical media. The storagedevice, whether a hard disk drive, a magnetic disk drive, an opticaldisk drive, or a combination thereof, is connected to the bus 115, 215by an appropriate interface. The drives and their associated computerreadable media provide nonvolatile storage of computer readableinstructions, data structures, program modules and other data for thecomputer 105, 205. Alternatively, the storage device 140, 240 may bemagnetic cassettes, flash memory cards, digital video disks, etc.

Furthermore, each computer 105, 205 includes a basic input/output system(BIOS) that contains the basic routines that help to transferinformation within the computer 105, 205, such as during start-up,stored in ROM 150, 250.

It is worth noting that executable code 125, 225, executed by theprocessor 110, 210, typically resides on computer readable media.Computer readable media may take many forms, including but not limitedto, storage media and transmission media. Examples of storage mediainclude, but are not limited to, RAM, ROM, EEPROM, flash memory, opticaldisks (e g., CD-ROM and digital versatile disks (DVD), etc.), magneticcassettes, magnetic tape, hard disk drives, magnetic disk storage, orany other magnetic medium, floppy disks, flexible disks, memory chip,cartridge, volatile and non-volatile memory devices, and other removabledisks or any other medium which can be used to store the information andwhich can be accessed by computer 105, 205. Memory 120, 220, storagedevice 140, 240, and ROM 150, 250 are examples of storage type computerreadable media. The storage type computer readable media may also betangible and recordable, and are explicitly defined herein to excludepropagated data signals. Examples of transmission media include, but arenot limited to, wired media such as coaxial cable(s), copper wire andoptical fiber, and wireless media such as optic signals, acousticsignals, RF signals and infrared signals, and digital and analogcommunication link.

Each computer 105, 205 includes a user interface 155, 255 forinterfacing with at least one input/output device 160, 260. Exemplaryoutput devices include a display device 165, 265 such as a monitor, aspeaker, and a printer. A user can enter commands and data into eachcomputer 105, 205 through input device 170, 270 such as a keyboard, apointing device, a microphone, joystick, game pad, and scanner.

Each computer 105, 205 also includes a network interface 175, 275 thatpermits two-way communication of information with other computers andelectronic devices through network 200 such as the Internet. Networkinterface 175, 275 may be an integrated services digital network (ISDN)card, modem, LAN card, and any device capable of sending and receivingelectrical, electromagnetic, optical, acoustic, RF or infrared signals.Network 200 may be public and/or private, wired and/or wireless, localand/or wide-area, or may be multiple, interconnected networks, amongothers. In client-server environment 100, client computer 105, one ormore content providers 201, and server computer 205 are networked vianetwork 200.

In an exemplary embodiment, processors 110, 210 of computer 105, 205 areprogrammed by means of executable code 125, 225 (e.g., the instructions)stored at different times in the various computer readable storage mediaof computer 105, 205. Executable code 125, 225 may be implemented aspart of the operating system 135, 235 or an application, component,program, object, module or sequence of instructions, a data structure, asubset thereof, among other arrangements. At execution, executable code125, 225 is loaded, at least partially, into the computer's primarymemory (i e., memory 120, 220) from the computer's secondary memory,(i.e., storage device 140, 240) where it is stored, and when read andexecuted by processor 110, 210 in computer 105 205, executable code 125,225 causes that computer to perform the steps to execute theembodiments. At least a portion of executable code 125, 225 may alsoexecute on one or more processors in another computer coupled tocomputer 105, 205 via network 200, with processing to implement thefunctions of the embodiment allocated to multiple computers over anetwork.

More specifically, in some embodiments, client computer 105 transmits arequest (e.g., an HTTP request) for content items 280 to server computer205 via network 200. In exemplary embodiments, server computer 205 haspreviously calculated a social weight for a plurality of content items280 from one or more content providers 201 (e g., internet sources orcontent sources), and adjusted the calculated social weight by applyinga time penalty and a decay algorithm. For example, executable code 225was previously loaded into memory 220 from storage device 240 andexecuted by processor 210 to calculate the social weight, adjustedsocial weight 281, and decayed social weight 282. Processor 210 thenstored content item 280, adjusted social weight 281, and decayed socialweight 282 in database 245 in server computer 205. Content items 280 indatabase 245 were then pre-ranked based on their corresponding adjustedsocial weight 281 and/or decayed social weight 282. Alternatively, theranking may simply occur in response to a request (e.g., HTTP request)without pre-ranking. In response to the request from client computer105, processor 210 searches database 245 and utilizes the stored data totransmit a response (e.g., HTTP response) with content items 280 in aranked order that respond to the request from client computer 105 vianetwork 200

FIG. 2 shows an example of a system 283, such as server computer 205,including a processor 284 (such as processor 210 in FIG. 1), memory 285(such as memory 220 in FIG. 1), and various modules which are stored inmemory 285 and executed on processor 284. System 283 includes aRetrieving Module 286 that retrieves a pool of content items from one ormore sources external to the system 283. System 283 also includes aThreshold Module 287 and an Ignoring Module 288. Threshold Module 287 isconfigured to analyze one or more data fields associated with a contentitem and compare the data field with a pre-determined threshold valuefor the data field. Ignoring Module 288 is configured to remove acontent item not meeting the threshold from further processing by system283.

System 283 further includes a Computing Module 289, a Time PenalizingModule 290, a Normalizing Module 291, and a Priority Weighting Module292. Computing Module 289 is configured to compute a social weight usingone or more data fields associated with a content item. Time PenalizingModule 290 is configured to adjust the social weight computed byComputing Module 289 to account for the age of the content item.Normalizing Module 291 is configured to apply a normalization factor tothe social weight computed by the Computing Module 289 to account forvariances in audience size and social activity from one content sourceto another. Priority Weighting Module 292 is configured to apply apre-determined priority weight to the computed social weight of acontent item based on the content source from which the content item wasretrieved. Such priority weighting enables the system to favor certaincontent sources over other content sources. Time Penalizing Module 290,Normalizing Module 291, and Priority Weighting Module 292, alone or incombination, produce an adjusted social weight for a content item.

Also included in system 283 are a Storage Module 293, a Decaying Module294, and an Updating Module 295. Storage Module 293 is configured tostore the content item and data associated with the content item (e.g.,the computed social weight, the adjusted social weight, and the age ofthe content item) in one or more databases. Decaying Module 294 isconfigured to apply a decay algorithm to the adjusted social weight ofthe content item after a pre-determined period of time, furtheraccounting for the age of the content item as well as for the period oftime the content item last experienced social activity. The applicationof the decay algorithm to the social weight stored with the content itemin the database results in a decayed social weight. Updating Module 295is configured to replace the social weight of the content item stored inthe database with the decayed social weight.

System 283 further includes Ranking Module 296 and Querying Module 297.Ranking Module 296 is configured to compare the social weights (e.g.,adjusted social weight or decayed social weight) of the content itemsstored in the database and rank content items according to the socialweight of the content item. Content items with a higher social weightare ranked above content items with a lower social weight. QueryingModule 297 is configured to query the database in response to a receiveddata transmission, such as a request, and retrieve a subset of contentitems that satisfy the request. System 283 also includes an I/O Module298 that is configured to receive data transmissions from one or moresources external to system 283. I/O Module 298 may also be configured totransmit data transmissions to one or more external sources. Furtherfunctionality associated with one or more of the elements of system 283recited above will be discussed in relation to the flow diagrams ofFIGS. 3 and 4.

FIG. 3 shows an example of a method for determining social weight ofsocial media content items. The example embodiment shown in FIG. 3 is amethod for gathering, ranking and presenting the large amount of contentavailable on the internet in a relevant way to a particular user. Forexample, the method can be used by a server to generate a listing ofsearch results on a user's computer in response to a user's searchquery. At block 300, content items are retrieved by the RetrievingModule 286 of server computer 205 from a plurality of content sources(e.g., internet sources). Various methods for retrieving content itemscan be used depending on the specific embodiment, provided thatinformation on the social elements of the content is available. Socialelements can include, but are not limited to, the number of comments onthe content item, the number of links to the content item, the number ofvisitors to the content item, the number of users contributing to thecontent item, the number of times the content item is shared, the numberof “likes” for the content item, the number of reviews of the contentitem, and ratings for the content item. Social elements arerepresentative of a content item's social currency, or the extent towhich the content item is part of interactions within a community orsocial circle.

At block 305, the Threshold Module 287 of server computer 205 maydetermine if each content item meets a pre-determined minimum threshold.The pre-determined minimum threshold can vary depending on the specificembodiment, and can be based on comments, likes, views, or other socialelements. Furthermore, the threshold can be based on any combination ofsocial elements, such as a number of comments and a number of likes. Forexample, if a content item has ten comments on it, the content isfurther processed, but a content item not having at least ten commentswill be ignored. In other embodiments, the threshold can be set suchthat content items with twenty (20) “likes” on it and ten comments isfurther processed, but content items with either fewer than twenty (20)“likes” or fewer than ten comments is ignored. In still otherembodiments, either a minimum number of “likes” or a minimum number ofcomments is required for further processing. In yet other embodiments,the threshold may be based on a percentage of an audience. For example,the threshold may be set to ten comments for a source, but twenty-five(25) comments for another source with a larger audience. The thresholdserves to ensure that the content being ranked is of minimum socialrelevance. Content items that do not meet the pre-determined minimumthreshold are processed by Ignoring Module 288 and are ignored at block310, removing them from further processing.

Content that meets the pre-determined minimum threshold may proceed toblock 315 and a social weight is computed for that content item byComputing Module 289. A content item's social weight is representativeof the relevancy of the content item in a social circle. Social circlesare groups of socially interconnected people, and can include a user'sfamily, friends, and acquaintances, co-workers, clients and customers,potential clients and customers, audiences, other users with the same orsimilar interest and preferences of the user, friends of the user'sfriends, and combinations and equivalents thereof, as well as macrocosmsand microcosms of these groups. The social weight may be based on atleast one of a number of comments on the content item, a number of linksto the content item, a number of visitors to the content item, a numberof users contributing to the content item, a number of times the contentitem is shared, a number of “likes” for the content item, a rating forthe content item, the number of times the content item has been sharedacross various social media, or any combination and equivalents thereof,and represents the relevancy of the content item in a user's socialcircle. Moreover, only one of these social elements may be utilized todetermine the social weight in some embodiments, while in otherembodiments, a combination of more than one factor may be utilized.Other factors may also be utilized to determine the social weight. Suchfactors may include those described herein or other factors, known orunknown in the art, which could reasonably be determined to be helpfulin deriving a social weighting factor.

In some embodiments, Computing Module 289 simply adds up the number ofcomments, the number of likes, and the number of times the content itemhas been shared and the resultant sum is the initial social weight forthe content. Put another way, the quantities of each social elementbeing taken into account for the social weight are summed. The specificcombination of the social elements used to compute the social weight canvary depending on the specific embodiment, and can be more complex thansimple addition in some cases. For example, in some embodiments, a“like” of the content item or a comment on the content item can beweighted more than a view of the content item. No matter how the socialweight is initially determined, control may pass to block 320 in whichTime Penalizing Module 290 applies a time penalty to the computed socialweight.

The time penalty serves to adjust the effect of comment and likeaccumulation (as well as the accumulation of other social elements) overtime. In other words, the time penalty enables newer content to beranked above or among older content that has accumulated an increasedsocial weight because of its time of existence on the internet, therebyaccounting for the age of the content item. One manner by which a timepenalty can be derived is based on an expression

${f(x)} = {a\; ^{- \frac{{({x - b})}^{2}}{2c^{2}}}}$

where x is the number of hours since the content item was created, a andb are decay coefficients, and c is the standard deviation. In exampleembodiments, a is equal to 1, b is equal to 0, and c is equal to 0.07.The decay coefficients can vary, for example, so long as the timepenalty is between 0 and 1. When the time penalty is applied to thesocial weight, the social weight is multiplied by the time penalty.

Since different sources for content have varying audiences, the socialweight may be normalized by Normalizing Module 291 at block 325 toaccount for a variance of audience size across the plurality of internetsources. Normalization can account for one or both the social activityof source users and the breadth of the audience. For example, theaudience for an NFL® (registered trademark of the National FootballLeague, New York, N.Y.) source might be much more “socially active” thanthe audience of a NATIONAL GEOGRAPHIC® (registered trademark of NationalGeographic Society, Washington, D.C.) source, resulting in increasedcomments, “likes,” and sharing for content retrieved from the NFL®source. In some embodiments, such as for content retrieved fromFACEBOOK® (registered trademark of Facebook, Inc., Palo Alto, Calif.),the fan count of the page is used as the representative audience count.For other content sources, the number of unique users for a site, thenumber of page views, the number of subscribers to a source, or anaverage number of viewers over a number of pages can be used as therepresentative audience count. The information used to derive theaudience count used for normalization can vary depending on the specificembodiment. In some embodiments, a logarithmic function might be appliedto the audience count and used for normalization. For example, thenormalization can be derived based on an expression

log_(1.141) n

where n is the audience count for a source. The log base can varydepending on the particular embodiment, and reduces any penalty appliedto popular sources having a large audience count while still normalizingacross sources.

At block 330, a priority weight may be applied by Priority WeightingModule 292 to the adjusted social weight for the particular contentitem. The priority weight is based on the particular internet sourcefrom which the particular content item was retrieved. The priorityweights assigned to various sources can vary depending on the specificembodiment, or can be equal across sources. For example, in someembodiments, the default priority weight for all sources is equal to 1.In other embodiments, the priority weight for a particular source isgreater than the priority weight for another source. For example, “morecredible” sources can be given a greater priority weight than “lesscredible” sources, or the system can assign a greater priority weight toits partner's sources than to its competitor's sources.

After normalization, the application of the time penalty, and theapplication of a priority weight, the resultant social weight isreferred to as an adjusted social weight for the content, though itshould be noted that some embodiments will employ an adjusted socialweight that has not been normalized, priority weighted, and/or timepenalized. Furthermore, the particular order in which these steps arecarried out by the server can vary depending on the specific embodiment.In some embodiments, the Normalizing Module 291 normalizes the socialweight before Time Penalizing Module 290 applies the time penalty andPriority Weighting Module 292 applies the priority weight, while inother embodiments, Time Penalizing Module 290 applies the time penaltybefore Normalizing Module 291 normalizes the social weight and PriorityWeighting Module 292 applies the priority weight. Furthermore, in stillother embodiments, the method includes fewer than all of the steps ofapplying a time penalty, normalizing the social weight, and applying apriority weight.

Next, the server computer may proceed to block 335 in which StorageModule 293 stores the adjusted social weight for a content item with thecontent item in a social content database. The association of theadjusted social weight with the content allows content to be presentedto users in a ranked order based on their adjusted social weights, withthe content with the highest social weight being presented first and thecontent with the lowest social weight being presented last. Thepresentation of content can be triggered by a user logging into orviewing a site (i.e., the presentation of “trending” news or content) oras the result of a search (i.e., the search on a particular topicresults in the content with increased social weight over content withoutsocial weight).

Next, at block 300, Retrieving Module 286 retrieves new content on arecurring basis. For example, approximately every fifteen (15) minutes,new content is retrieved by Retrieving Module 286 and the new content isprocessed according to the method described above. The time period forretrieving new content will vary depending on the particular embodimentand can be adjusted based on server limitations.

At block 340, Decaying Module 294 periodically applies a decay algorithmto the social weights associated with content items in the database.Both the time after which the decay begins to be applied for a contentitem and the frequency with which is it applied can vary. For example,in some embodiments, if a content item has not had social activity inthe last hour, the algorithm can be applied about every fifteen (15)minutes to decay the social weight stored in the database, while inother embodiments, the social weight of the content is not decayed untilthere is no new social activity in the last twenty-four (24) hours. Thedecay algorithm can further account for the age of the content item andensure that the ranking scheme presents current articles that areincreasing in social relevance instead of older articles that were onceextremely socially relevant. For example, the decay algorithm can ensurethat an article on the results of the Presidential election decreases inrelevance over time and does not appear in the top ranked results a yearlater, when it is less relevant, because it had a disproportionatelyhigh number of views or likes the day it originally appeared. The socialweight may be updated at block 345 by Updating Module 295 and stored asthe decayed social weight with the content item in the database byStorage Module 293 at block 335.

One manner in which the decay can be derived is based on an expression

D=0.06T+0.04A

where D is decay, T is the age of the content item and A is arepresentative time value of the last activity on the content item(e.g., time since the last comment or “like” occurred). Both T and A arerepresented in hours in some embodiments, but may be represented in atime unit other than hours (e g., weeks, days, minutes, etc.) in otherembodiments. The constants can vary depending on the specific embodimentso long as each constant is between zero and one. One manner in whichthe decay algorithm may be applied to the adjusted social weight can bebased on an expression

W=S(1−D)

where W is a decayed social weight for the particular content, S is theadjusted social weight for the particular content, and D is the decay.In embodiments where the value of D is negative, and the value of W istherefore negative, the value of W is set to zero. In other words, aftera certain period of time, the decayed social weight becomes zero. Thedecayed social weight may then replace the social weight stored in thedatabase with the content and be used by Ranking Module 296 to rank thecontent for presentation to the user. In some embodiments, the decayalgorithm is applied in a plurality of iterations and the value of S fora subsequent iteration is the value of W from the previous iterationrather than the adjusted social weight as described above. Put anotherway, S is the social weight stored in the database with the contentitem, and can be the adjusted social weight originally stored to thedatabase, a decayed social weight for the content item, or a socialweight to which the decay algorithm has previously been applied.

In alternative embodiments, the social weight may be decayed accordingto a geometric progression. In such embodiments, the decay can bederived based on an expression

W=0.7S

where W is the decayed social weight for the particular content and S isthe adjusted social weight for the particular content. As in the decayalgorithm presented above, the constant can be adjusted depending on thespecific application contemplated so long as it is between zero and one.In some embodiments, the constant is between about 0.5 and about 1. Theuse of a geometric progression to decay the social weight may result ina slower decay of the social weight as compared to the algorithmpresented in the previous embodiment, and may ensure that if theretrieving process is stopped for a short while, the social weights forthe existing articles are not all decayed to zero. The stopping of theretrieving process could occur for a number of unforeseen reasons, orduring system or database maintenance or updating, for example. In someembodiments, the decay algorithm is applied by Decaying Module 294 in aplurality of iterations and the value of S for a subsequent iteration isthe value of W from the previous iteration rather than the adjustedsocial weight as described above.

In an example embodiment, a server computer is communicatively coupledto the internet and Retrieving Module 286 retrieves content (i.e., apool of content items), along with information on the social elements ofeach content item from a plurality of internet sources according to apre-set time period, such as every fifteen (15) minutes. The serveranalyzes the number of “likes” and the number of comments of eachcontent item to determine if each content item meets a pre-determinedminimum threshold, which in this embodiment is ten comments. Contentitems in the pool of content items that have fewer than ten comments areignored.

For each content item having ten or more comments, the Computing Module289 of the server computer then calculates a raw social weight for thecontent item using the information on the social elements ingested withthe content item. The server computer in this example embodiment weightscomments such that each comment counts as five social elements, butwhere each “like” and page view counts as only one social element. Thetotal number of social elements is the raw social weight for the givencontent item.

Next in this embodiment, the Time Penalizing Module 290 of servercomputer applies a time penalty to the raw social weight based on anexpression

$Y = {R\; ^{- \frac{x^{2}}{0.0098}}}$

where Y is the time penalized social weight, R is the raw social weight,and x is the number of hours since the content item was created orposted on the internet.

In the next step according to this embodiment, the Normalizing Module291 of the server computer normalizes the time penalized social weightaccording to the audience count for the internet source from which thecontent item was received by dividing the time penalized social weightby the audience count. The result of normalization is a normalized,time-penalized social weight.

The Priority Weighting Module 292 of the server computer next applies apriority weight to the content item, multiplying the normalized, timepenalized social weight by the priority weight, to get an adjustedsocial weight. In this embodiment, the priority weight for each internetsource is set to one, so the adjusted social weight for each contentitem is equal to the normalized, time-penalized social weight.

The Storage Module 293 of the server computer stores each content itemfrom the pool of content items along with its adjusted social weight inthe social weight database. Every fifteen (15) minutes (or whateverother time period is specified), the server computer repeats thisprocess from retrieving content from internet sources to saving theprocessed content items in the database with adjusted social weights.

Periodically, such as every twenty (20) minutes or any other specifiedperiod, the Decaying Module 294 of the server computer applies a decayto the social weights of content items that have not received new socialactivity in a pre-determined amount of time. For example, the DecayingModule 294 decays the social weights of content items that have not hadnew social activity (e.g., no new comments, likes, or page views) in thelast hour. For those content items, the server computer calculates adecayed social weight W according to an expression

W=S(1−(0.06T+0.04A))

where T is the age of the content item and A is a representative timevalue of the last activity on the content item (e.g., time since thelast comment, page view, or “like” occurred), and S is the social weightstored with the content item in the database. Both T and A arerepresented in hours. The Updating Module 295 of the server computerreplaces the social weight saved with the content item in the databasewith the decayed social weight. In this way, as more time passes duringwhich a content item does not experience new social activity, its socialweight used for ranking is decreased. In exemplary embodiments, theRanking Module 296 ranks content items according to their adjustedsocial weights and/or decayed social weights.

In the example embodiment shown in FIG. 4, when a user enters one ormore search terms in a search engine operating on the server computerusing a client computer communicatively coupled via the internet oranother network, the I/O Module 298 of the server computer receives therequest including the search terms, as shown at block 400. Controlpasses to block 405 in which the Querying Module 297 of the servercomputer queries the database for content items that satisfy therequest. In other words, the server computer determines which contentitems in the database match or could match the search terms entered bythe user. At block 415, the Ranking Module 296 ranks the content itemsthat satisfy the request based on their social weights. In someembodiments, all content items are ranked based on their adjusted socialweights and/or decayed social weights and stored with their ranking inthe database, and only the portion of content items that satisfy therequest are included in the response. In other embodiments, only thecontent items that match the search terms are ranked. At block 415, theI/O Module 298 of the server computer responds to the request presentingthe selected content items to the user in ranked order with the contentitem with the highest social weight at the top and in order ofdecreasing social weight. Those of ordinary skill in the art willappreciate that the server computer may respond with a representation ofthe content item such as a link to the content item, a thumbnail of thecontent item, etc.

While various embodiments have been described above, it should beunderstood that they have been presented by way of example, and notlimitation. It will be apparent to persons skilled in the relevantart(s) that various changes in form and detail can be made thereinwithout departing from the scope of the present disclosure. Thus,embodiments presented should not be limited by any of theabove-described exemplary embodiments, but should be defined only inaccordance with the following claims and their equivalents.

1. A computer implemented method for determining social weights forcontent items available from a plurality of content sources, the methodcomprising the steps of: retrieving the content items from the pluralityof content sources; computing on a processor a social weight for a firstcontent item, the social weight representing the relevancy of the firstcontent item in a social circle; applying a time penalty to the computedsocial weight for the first content item, the time penalty accountingfor an age of the first content item; and normalizing the computedsocial weight for the first content item based on an audience count forthe content source from which the first content item was retrieved toaccount for a variance of audience size across the plurality of contentsources, the steps of applying the time penalty and normalizing thecomputed social weight resulting in an adjusted social weight for thefirst content item.
 2. The method of claim 1, the social weight beingbased on at least one of a number of comments on the first content item,a number of links to the first content item, a number of visitors to thefirst content item, a number of users contributing to the first contentitem, a number of times the first content item is shared, a number oflikes for the first content item, or a rating for the first contentitem.
 3. The method of claim 1 further comprising utilizing a thresholdto determine whether to compute the social weight.
 4. The method ofclaim 1, applying a time penalty before normalizing.
 5. The method ofclaim 1 further comprising the steps of: computing a social weight for asecond content item, the social weight representing the relevancy of thesecond content item in the social circle; applying a time penalty to thecomputed social weight for the second content item; and normalizing thecomputed social weight for the second content item based on an audiencecount for the content source from which the second content item wasretrieved, the steps of applying the time penalty and normalizing thecomputed social weight resulting in an adjusted social weight for thesecond content item.
 6. The method of claim 5 further comprising thestep of ranking the first content item and the second content item basedon the adjusted social weight of each content item, the content itemhaving a higher adjusted social weight being ranked above the contentitem having a lower adjusted social weight.
 7. The method of claim 1further comprising the steps of: storing the first content item and theadjusted social weight in a database; periodically applying a decayalgorithm to the adjusted social weight for the first content item savedin the database to produce a decayed social weight for the first contentitem, the decay algorithm further accounting for the age of the firstcontent item; and replacing in the database the adjusted social weightfor the first content item with the decayed social weight for the firstcontent item.
 8. The method of claim 7 further comprising the steps of:computing a social weight for a second content item, the social weightrepresenting the relevancy of the second content item in the socialcircle; applying a time penalty to the computed social weight for thesecond content item; normalizing the computed social weight for thesecond content item based on an audience count for the content sourcefrom which the second content item was retrieved; the steps of applyinga time penalty and normalizing the computed social weight resulting inan adjusted social weight for the second content item; and ranking thefirst content item and the second content item based on the adjustedsocial weight of second content item and the decayed social weight ofthe first content item.
 9. The method of claim 7, the decay algorithmbeingD=0.06T+0.04A where D is decay, T is an age of the first content itemand A is a representative time value of last activity on the firstcontent item.
 10. The method of claim 9 further comprising the step ofapplying the decay algorithm to the adjusted social weight of the firstcontent item a plurality of iterations based on an expressionW=S(1−D) where in the first iteration of the plurality of iterations, Wis a decayed social weight for the first content item, S is the adjustedsocial weight for the first content item, and D is the decay; and thevalue of S for any subsequent iteration being the value of W from theprevious iteration.
 11. The method of claim 1, the time penalty beingbased on an expression${f(x)} = {a\; ^{- \frac{{({x - b})}^{2}}{2c^{2}}}}$ where x is anumber of hours since the first content item was created, a and b aredecay coefficients, and c is the standard deviation.
 12. The method ofclaim 11 where a is equal to 1, b is equal to 0, and c is equal to 0.07.13. The method of claim 1 further comprising the step of applying apriority weight to the computed social weight for the first contentitem, the priority weight being based on the content source from whichthe first content item was retrieved; the steps of applying the timepenalty, normalizing the computed social weight, and applying a priorityweight resulting in the adjusted social weight for the first contentitem.
 14. The method of claim 13, the priority weight for substantiallyall content sources being substantially equal to
 1. 15. A system forsocial weighting content items retrieved from a plurality of contentsources, comprising: at least one hardware-based processor; memory; aretrieving module, stored in the memory and executable on the processor,configured to retrieve the content items from the plurality of contentsources; a computing module, stored in the memory and executable on theprocessor, configured to compute a social weight for a first contentitem, the social weight representing the relevancy of the first contentitem in a social circle; a time penalizing module, stored in the memoryand executable on the processor, configured to apply a time penalty tothe computed social weight for the first content item, the time penaltyaccounting for an age of the first content item; and a normalizingmodule, stored in the memory and executable on the processor, configuredto normalize the computed social weight for the first content item basedon an audience count for the content source from which the first contentitem was retrieved to account for a variance of audience size across theplurality of content sources, application of the time penalty andnormalization the computed social weight resulting in an adjusted socialweight for the first content item.
 16. The system of claim 15, thecomputing module further configured to compute a social weight for asecond content item, the social weight representing the relevancy of thesecond content item in the social circle, the time penalizing modulefurther configured to apply a time penalty to the computed social weightfor the second content item, the normalizing module further configuredto normalize the computed social weight for the second content itembased on an audience count for the content source from which the secondcontent item was retrieved; the application of a time penalty andnormalization of the computed social weight resulting in an adjustedsocial weight for the second content item, the system furthercomprising: a ranking module, stored in the memory and executable on theprocessor, configured to rank the first content item and the secondcontent item based on the adjusted social weight of each content item.17. The system of claim 15 further comprising: a storage module, storedin the memory and executable on the processor, configured to store thefirst content item and the adjusted social weight in a database; adecaying module, stored in the memory and executable on the processor,configured to periodically apply a decay algorithm to the adjustedsocial weight for the first content item stored in the database toproduce a decayed social weight for the first content item, the decayalgorithm further accounting for the age of the first content item; andan updating module, stored in the memory and executable on theprocessor, configured to replace in the database the adjusted socialweight for the first content item with the decayed social weight for thefirst content item.
 18. The system of claim 15, the social weight beingbased on at least one of a number of comments on the first content item,a number of links to the first content item, a number of visitors to thefirst content item, a number of users contributing to the first contentitem, a number of times the first content item is shared, a number oflikes for the first content item, or a rating for the first contentitem.
 19. The system of claim 15 further comprising a priority weightingmodule, stored in the memory and executable on the processor, configuredto apply a priority weight to the computed social weight for the firstcontent item, the priority weight being based on the content source fromwhich the first content item was retrieved; the application of the timepenalty, the normalization of the computed social weight, andapplication of a priority weight resulting in the adjusted social weightfor the first content item.
 20. One or more computer-readable storagemedia storing computer-executable instructions that, when executed by aprocessor, perform steps comprising: receiving a request for informationrelated to content items; retrieving a plurality of content itemsrelated to the request from a plurality of content sources and storingat least a portion of the content items on one or more computer-readablemedia; computing a social weight for the plurality of content itemsstored in the computer-readable media, the social weight representingthe relevancy of each content item in a social circle; applying a timepenalty to the computed social weight for each content item of theplurality of content items, the time penalty accounting for an age ofeach content item; normalizing the computed social weight for eachcontent item in the plurality of content items based on an audiencecount for the content source from which each content item was retrievedto account for a variance of audience size across the plurality ofcontent sources; the steps of applying the time penalty and normalizingthe computed social weight resulting in an adjusted social weight foreach content item; ranking the content items of the plurality of contentitems according to the adjusted social weight for each content item toderive one or more ranked content items; and responding to the requestwith at least one of the ranked content items.